/**
 * Copyright 2010 Victor Egea Hernando
 *
 * RockScript is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, version 3 of the License.
 * 
 * RockScript is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with RockScript.  If not, see <http://www.gnu.org/licenses/>.
 */
#ifndef PAPER_CORELIB_H_
#define PAPER_CORELIB_H_

#include "../types.h"
#include "../vm/vmachine.h"

namespace paper{

// library headers
PAPER_API void load_core_header( vmachine &vm );
PAPER_API void load_prompt_header( vmachine &vm );
PAPER_API void load_debug_header( vmachine &vm );
// library loaders
PAPER_API void load_core_lib( vmachine &vm );
PAPER_API void load_prompt_lib( vmachine &vm );
PAPER_API void load_debug_lib( vmachine &vm );

INLINE void load_all_headers( vmachine &vm ){
	// load all headers
	load_prompt_header( vm );
	load_debug_header( vm );
}

// loads all the libraries
INLINE void load_all_libs( vmachine &vm ){
	load_all_headers( vm );
	// load libraries
	load_prompt_lib( vm );
	load_debug_lib( vm );
}

}; // namespace paper;

#endif // PAPER_CORELIB_H_

